package cn.edu.nwpu.warehousemanagement.service;

import cn.edu.nwpu.warehousemanagement.pojo.Result;
import cn.edu.nwpu.warehousemanagement.pojo.Shelf;

import java.util.List;

/**
 * @author ljl
 * 定义shelfservice要完成的操作
 */
public interface ShelfService {

    /**
     * 创建一个新的货架
     *
     * @param shelf 要保存的货架对象
     * @return 成功返回创建后的货架对象
     */
    Result<String> createShelf(Shelf shelf);

    /**
     * 根据 ID 更新已有的货架信息
     *
     * @param shelf 新的货架信息
     * @return 成功返回更新后的货架对象，失败返回错误信息
     */
    Result<String> updateShelf(Shelf shelf);

    /**
     * 根据 ID 软删除货架
     *
     * @param id 要删除的货架ID
     * @return 成功返回空，失败返回错误信息
     */
    Result<Void> deleteShelf(Long id); // 软删除

    /**
     * 根据 ID 获取货架信息
     *
     * @param id 要查询的货架ID
     * @return 成功返回货架对象，失败返回错误信息
     */
    Result<Shelf> getShelfById(Long id);

    /**
     * 获取所有未被删除的货架列表
     *
     * @return 成功返回货架列表
     */
    Result<List<Shelf>> getAllShelves();

}
